* Реализация некоторых команд ЛОГО * Программа КОНЦЕПТ, 17.09.2010, www.gendoc.ru * За основу взято: http://fio.wl.dvgu.ru/images/Vipusk22/Lopatnuk/Logo/Lessons/raznoe.htm *********** Внутренние переменные ЛОГО *********** присвоить _УГОЛ_ 0 // Угол направления черепашки в градусах присвоить _УГОЛ_РАДИАНЫ_ 0 // Угол направления черепашки в радианах присвоить _ЦВЕТ_ 10 // Цвет следа черепашки присвоить _Х_ 100 _У_ 100 // Текущие координаты черепашки присвоить _СМЕЩЕНИЕ_Х_ 20 _СМЕЩЕНИЕ_У_ 200 // Смещение осей координат присвоить _РИСОВАНИЕ_ 1 // Режим рисования включен присвоить _ПИ_ 3,141592653589 // Число "Пи" *********** Вспомогательная функция *********** функция рисовать_линию х1 у1 х2 у2 увеличить х1 [_СМЕЩЕНИЕ_Х_] увеличить х2 [_СМЕЩЕНИЕ_Х_] вычислить - у1 [_СМЕЩЕНИЕ_У_] [у1] вычислить - у2 [_СМЕЩЕНИЕ_У_] [у2] рисовать линия [х1] [у1] [х2] [у2] возврат *********** Реализаця "черепашьих" команд ЛОГО *********** функция вперед число вычислить округлить _Х2_ (вычислить + $результат [_Х_] (вычислить * $результат [число] (вычислить косинус $результат [_УГОЛ_РАДИАНЫ_] ) ) ) 0 вычислить округлить _У2_ (вычислить + $результат [_У_] (вычислить * $результат [число] (вычислить синус $результат [_УГОЛ_РАДИАНЫ_] ) ) ) 0 если [_РИСОВАНИЕ_] рисовать_линию [_Х_] [_У_] [_Х2_] [_У2_] конец присвоить _Х_ [_Х2_] _У_ [_У2_] возврат функция назад число вычислить округлить _Х2_ (вычислить - $результат [_Х_] (вычислить * $результат [число] (вычислить косинус $результат [_УГОЛ_РАДИАНЫ_] ) ) ) 0 вычислить округлить _У2_ (вычислить - $результат [_У_] (вычислить * $результат [число] (вычислить синус $результат [_УГОЛ_РАДИАНЫ_] ) ) ) 0 если [_РИСОВАНИЕ_] рисовать_линию [_Х_] [_У_] [_Х2_] [_У2_] конец присвоить _Х_ [_Х2_] _У_ [_У2_] возврат функция влево число увеличить _УГОЛ_ [число] вычислить остаток _УГОЛ_ [_УГОЛ_] 360 вычислить * _УГОЛ_РАДИАНЫ_ (вычислить / $результат [_УГОЛ_] 180 ) [_ПИ_] возврат функция вправо число увеличить _УГОЛ_ "-[число]" вычислить остаток _УГОЛ_ [_УГОЛ_] 360 вычислить * _УГОЛ_РАДИАНЫ_ (вычислить / $результат [_УГОЛ_] 180 ) [_ПИ_] возврат функция снова_рисовать присвоить _РИСОВАНИЕ_ 1 возврат функция не_рисовать присвоить _РИСОВАНИЕ_ 0 возврат *********** Примеры фигур с использованием "черепашьих" команд ЛОГО ********** функция Квадрат вперед 20 вправо 90 вперед 20 вправо 90 вперед 20 вправо 90 вперед 20 вправо 90 возврат функция Три_квадрата для 1;2;3 для 1;2;3;4 вперед 20 влево 90 следующий вправо 90 не_рисовать вперед 30 влево 90 снова_рисовать следующий возврат функция Салфетка для 1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36 для 1;2;3;4 вперед 50 вправо 90 следующий вправо 10 следующий возврат функция Цветок для 1;2;3;4;5;6;7;8 влево 45 вперед 20 вправо 45 вперед 50 вправо 45 вперед 20 вправо 90 вперед 20 вправо 45 вперед 50 вправо 45 вперед 20 следующий возврат *********** Начало программы ********** ввести меню1 фигура 'Что нарисовать?' Квадрат;Три_квадрата;Салфетка;Цветок если [фигура] выполнить [фигура] конец